package cn.stylefeng.guns.sys.modular.system.mapper;

import cn.stylefeng.guns.sys.modular.system.entity.Yybb;
import cn.stylefeng.guns.sys.modular.system.model.params.YybbParam;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyDywhResult;
import cn.stylefeng.guns.sys.modular.system.model.result.YybbResult;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author liuy
 * @since 2021-04-21
 */
public interface YybbMapper extends BaseMapper<Yybb> {

    /**
     * 获取列表
     *
     * @author liuy
     * @Date 2021-04-21
     */
    List<YybbResult> customList(@Param("paramCondition") YybbParam paramCondition);

    /**
     * 获取map列表
     *
     * @author liuy
     * @Date 2021-04-21
     */
    List<Map<String, Object>> customMapList(@Param("paramCondition") YybbParam paramCondition);

    /**
     * 获取分页实体列表
     *
     * @author liuy
     * @Date 2021-04-21
     */
    Page<YybbResult> customPageList(@Param("page") Page page, @Param("paramCondition") YybbParam paramCondition);

    /**
     * 获取分页map列表
     *
     * @author liuy
     * @Date 2021-04-21
     */
    Page<Map<String, Object>> customPageMapList(@Param("page") Page page, @Param("paramCondition") YybbParam paramCondition);

    YybbResult getSxfByDm(@Param("paramCondition") YybbParam paramCondition);

    List<YybbResult> bankListByDm(@Param("paramCondition") YybbParam paramCondition);

    /**
     * 获取各店的营业日期
     *
     * @return
     */
    List<Yybb> cwmList();

    List<Map> getCwm();

    //    BigDecimal getYye(@Param("shopName") String shopName, @Param("yyr") String beginTime);
    BigDecimal getYye(@Param("shopName") String shopName, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime);

    List<YybbResult> xjsjList(@Param("time") String time);

    List<BtyDywhResult> dyWhList(@Param("state") Integer state);

    List<YybbResult> repeatList(@Param("yyr") String yyr);

}
